草庐IT

API管理之利剑 -- Eolink

全部标签

windows - 检查另一个进程是否有管理员权限

我写了一段代码来检查在同一台机器上运行的进程是否具有管理员权限。但它总是返回false。你能告诉我它有什么问题吗?privatestaticboolHasAdminPrivileges(intprocessId){varhProcess=WinApi.OpenProcess(ProcessAccessFlags.QueryInformation,false,processId);varopened=WinApi.OpenProcessToken(hProcess,WinApi.TOKEN_QUERY,outIntPtrhToken);if(opened){vartoken=newInt

windows - 我应该使用什么 Windows API 函数将文件/文件夹标记/取消标记为 protected 操作系统文件?

我应该使用什么WindowsAPI函数来将文件/文件夹标记/取消标记为protected操作系统文件? 最佳答案 您可以使用SetFileAttributes()带有标志的APIFILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM。 关于windows-我应该使用什么WindowsAPI函数将文件/文件夹标记/取消标记为protected操作系统文件?,我们在StackOverflow上找到一个类似的问题: https://s

c# - 从 Windows 服务在 C# 中以编程方式启动进程,UI 不显示我在任务管理器中看到进程

我正在尝试从用C#编写的Windows服务以编程方式启动进程。我看到我的进程已在任务管理器中启动,但我没有看到它的UI。知道发生了什么事吗?我在WindowsXP上运行这个clientProcess=newSystem.Diagnostics.Process();clientProcess.StartInfo.FileName=system_drive_path+@"\sd\ud\ud.exe";clientProcess.StartInfo.WindowStyle=ProcessWindowStyle.Maximized;clientProcess.Start();

c++ - 返回 char* 函数的内存管理

今天,我没有多想,写了一个简单的函数,根据给定枚举值的switch语句返回一个char*。然而,这让我想知道如何释放那段内存。我所做的是这样的:char*func(){char*retval=newchar[20];//Switchblahblah-willalwaysreturnsomevalueotherthanNULLsincedefault:returnretval;}如果这是一个天真的问题,我深表歉意,但是释放内存的最佳方式是什么,因为我无法在返回后删除内存,显然,如果我之前删除它,我将不会有返回值.我认为可行的解决方案是这样的voidfunc(char*&in){//bla

获取电子邮件哈希时出现 Windows Live Contacts API 错误 - JavaScript

WindowLiveContactsAPI的以下代码可从中获取所有电子邮件地址。它在登录、注销和其他身份验证方面工作正常。我可以使用GetData函数调用收集登录用户的所有用户信息,但我正在获取用户的电子邮件哈希,其余电子邮件哈希为空。我的通讯录中有10个电子邮件地址。我如何使用此API获取我的联系人的电子邮件地址?signUserInsignUserOutCheckUserStatusGetDataWL.init({client_id:'0000000044444444',redirect_uri:'http://domain.com/contact.php',response_ty

windows - 我需要 Hook 什么进程 API 来跟踪服务?

当Windows中的服务或应用程序启动、停止以及它是成功退出还是出现错误代码时,我需要跟踪日志。据我了解,许多服务不会记录自己的开始和停止时间,或者如果它们正确退出,所以似乎要走的路必须在API中插入一个钩子(Hook),以便在服务/应用程序请求时捕获处理空间并放弃它。我的问题是我需要hook什么函数才能完成这个,这有可能吗?我需要它在64位WindowsXP和7上工作。 最佳答案 我认为最好的办法是使用设备驱动程序。参见PsSetCreateProcessNotifyRoutine.

c++ - 在 XP 中也加载的 DLL 中使用新的 Vista 线程池 API(XP 中未使用线程池代码)

我们正在生成一个同时针对Windows7和XP的DLL。我们希望我们的DLL在Windows7系统上加载时使用较新的Vista线程池API,而不是在XP系统上加载时。现在,我们尝试编译带有操作系统运行时检测的DLL,以确保VistaAPI永远不会在XP系统上使用,但我们仍然无法在WindowsXP系统上注册我们的DLL,因为缺少kernel32中的依赖项.dll...除了构建两个单独版本的DLL之外,还有其他解决方法吗?提前致谢 最佳答案 为什么不使用LoadLibrary动态加载kernel32.dll,然后使用GetProcAd

c++ - 通过 Windows API 函数替换对 AfxGetInstanceHandle() 的调用

SHELLEXECUTEINFOinfo;//Initializingstructinfo.cbSize=sizeof(info);info.fMask=SEE_MASK_NOCLOSEPROCESS|SEE_MASK_FLAG_NO_UI;info.hwnd=NULL;info.lpVerb=_T("open");info.lpParameters=sParameters_p;info.lpDirectory=_T("");info.nShow=SW_SHOW;info.hInstApp=NULL;info.lpFile=sFileName_p;//Problemhere:info.

c# - 在非管理员帐户上自动启动具有管理员权限的 WinForms 应用程序

我已经为这个问题苦苦挣扎了几天,但找不到任何能为我解决问题的帖子。也许我想要的是不可能的。我们开发了一个WinForms应用程序供我们公司内部使用。大多数员工在Windows中没有管理员权限。我们的应用程序需要管理员访问机器,并且需要在用户登录时自动启动。这是我尝试过的:1)将快捷方式放入启动文件夹我可以让应用程序自动启动(usingarelauncher),但每次重启时它仍然需要管理员在计算机旁(输入密码)。2)注册表项我创建了一个Software\Microsoft\Windows\CurrentVersion\Run注册表项来自动启动应用程序。无论我运行重新启动程序还是应用程序本

windows - Jenkins 没有从 Windows 凭据管理器中检测到 GIT 凭据

我有2个GIT存储库副本,我们称它们为“来源”和“备份”。我想要实现的是以下内容。我的团队不断将他们的更改推送并同步到“origin”,但是我想确保我在不同的地理位置有一个“origin”的副本,它将服务作为副本,以防万一发生火灾,毁坏了我办公室的一切。为了实现这一点,我在云中保留了一份相同的git存储库副本。现在,我正在结合使用Jenkins和Windows批处理脚本,试图找出一种可以使这些存储库保持同步的方法。批处理脚本将负责实际的同步操作,Jenkins将确保同步操作定期运行。副本被命名为“backup”(您可能已经猜到了)。问题是当我直接从命令提示符运行批处理脚本时,它完全按照